home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / text / mac / faqs.250 < prev    next >
Encoding:
Text File  |  1996-02-12  |  27.7 KB  |  667 lines

  1. Frequently Asked Questions (FAQS);faqs.250
  2.  
  3.  
  4.  
  5.     General index for the MATLAB User Group software library
  6.     ----------------------------------------------------------
  7.     Currently there are the following subdirectories:
  8.     approximation      approximation theory
  9.     archive            old MATLAB user group digests
  10.     control            control theory
  11.     dataanalysis       data analysis and statistics
  12.     graphics           graphics programs
  13.     integration        numerical integration
  14.     linearalgebra      linear algebra utilities
  15.     misc               miscellaneous
  16.     ode                ordinary differential equations
  17.     optimization       as the name says
  18.     pde                partial differential equations
  19.     rootfinding        zero-finding routines
  20.     specialfunctions   special functions
  21.     teaching           for classroom use
  22.     tools              miscellaneous tools
  23.  
  24.     In order to get an index for a subdirectory (tools, say)
  25.     send the message
  26.         send index from MATLAB/tools
  27.     to netlib@ornl.gov.
  28.  
  29.     In order to get some code, (unbundle in the `tools'
  30.     directory, say), send the message
  31.         send unbundle from MATLAB/tools
  32.     to netlib@ornl.gov.
  33.  
  34.     FOR  STUDENTS: Prentice Hall has published  a student edition of matlab
  35.     which contains a book and  set of disks for PCs and Macs.  The software
  36.     is limited only in matrix size (32 x 32 matrix;  1024 elements) and  in
  37.     its ability  to import or call  C or Fortran  subroutines.  On the plus
  38.     side, it is able to run without a coprocessor (it will use one if it is
  39.     present) and it includes a subset of the Signal Processing and Controls
  40.     Toolboxes, The Signals and  Systems Toolbox,  which  provides for added
  41.     functionality. Book only (about US$30): ISBN = 0138560064; Book + disk:
  42.     (about US$50 ISBN=0-13-855974-0 for 3.5" or ISBN=0-13-855982-1 for 5.25
  43.     Macintosh version:  ISBN=0-13-855990-2. There will be related books out
  44.     by mid to late 1993 :  Computer Aided Signal Processing with MATLAB, by
  45.     Burrus, Oppenheim, McClellan, Parks, Schafer, and Schussler; and Signal
  46.     Processing : A Computer  Approach, by Etter. More books in this  MATLAB
  47.     Curriculum Series are planned. For general info: matlab@prenhall.com
  48.  
  49.     [From the Matlab Users Group (Editor, hwilson@ua1vm.ua.edu)]
  50. --------------------------------------------------
  51.  
  52. Q1.2.6: What are the Signal Processing Packages for Mathematica?
  53.         Where can I get them?
  54.  
  55. Package: Signal Processing Pacakages (SPP) and Notebooks.
  56.  
  57. Description:
  58.  
  59.          Public domain  extensions  to  Mathematica.   Enables the symbolic
  60.     manipulation of signal processing expressions:  1-D discrete/continuous
  61.     convolutions and 1-D/m-D linear transforms  (Laplace, Fourier, z, DTFT,
  62.     and DFT).   For  linear  transforms, you can specify your own transform
  63.     pairs and see the intermediate computations. Great for showing students
  64.     how to take transforms, or for deriving input-output relationships in a
  65.     transform  domain.   Additional abilities include analog filter design,
  66.     solving DE's using transforms, converting signal processing expressions
  67.     to their equivalent TeX forms, and number theoretic operations  (Bezout
  68.     numbers, Smith Form decompositions, and matrix factors).   Accompanying
  69.     SPP  are  tutorial notebooks on analog filter design, Fourier analysis,
  70.     piecewise convolution,  and  the  z-transform (includes a discussion of
  71.     fundamentals  of  digital  filter  design).  These Notebooks illustrate
  72.     difficult concepts (such as  the  flip-and-slide  view  of convolution)
  73.     through animation.  A Notebook reader is available in the public domain
  74.     for Macintosh computers (a BinHexed version is on the ftp site).
  75.  
  76.     FOR STUDENTS:   A student version of Mathematica is available for $175.
  77.     The price includes a copy of the reference manual.  The only drawbacks
  78.     to the student version are that the floating point coprocessor is dis-
  79.     abled and that upgrades cannot be ordered.
  80.  
  81. Contact: Brian Evans, evans@eedsp.gatech.edu.
  82.  
  83. To obtain: anonymous ftp to gauss.eedsp.gatech.edu (130.207.226.24).
  84. (available in UNIX, Mac, and MS-DOS archive formats).
  85.  
  86. --------------------------------------------------
  87.  
  88. Q1.2.7: What is the Control Systems Analysis Packages for Mathematica?
  89.         Where can I get them?
  90.  
  91. Package: Control Systems Analysis Package (COSYPAK) and Notebooks
  92.  
  93. Description: Public domain extension to Mathematica.  Classical and
  94. state-space control analysis and design methods.  The Notebooks
  95. supplement the material in the textbook "Modern Controls Theory" by
  96. Ogata.  Largely based on the Signal Processing Packages (SPP, see above).
  97.  
  98. Contact: Dr. Sreenath, sree@veda.esys.cwru.edu.
  99.  
  100. To obtain: anonymous ftp veda.esys.cwru.edu (129.22.40.9).
  101. --------------------------------------------------
  102.  
  103. Q1.2.8: What are some other Mathematica DSP Notebooks?
  104.  
  105. The following Mathematica notebooks can be ftped from ccrma-ftp.stanford.edu:
  106.  
  107. pub/DSP/GenHamming.ma.Z         Generalized Hamming windows
  108. pub/DSP/Kaiser.ma.Z             The Kaiser window
  109. pub/DSP/WinFlt.ma.Z             Digital filter design by the "window method"
  110.  
  111. (There are other DSP related items in pub/DSP on ccrma-ftp; see other
  112. sections of this FAQ for details).
  113. --------------------------------------------------
  114.  
  115. Q1.2.9: What is the Linear Systems Toolbox for Maple?
  116.         Where can I get it?
  117.  
  118. Package: Linear systems toolbox for Maple.
  119.  
  120. Description: Public domain extension to Maple.
  121.  
  122. Contact: Tony Richardson, amr@mpl.ucsd.edu.
  123.  
  124. To obtain: anonymous ftp to cameron.egr.duke.edu,
  125. file pub/maple/linsys1.2.tar.Z.
  126. --------------------------------------------------
  127.  
  128. Q1.2.10: Where can I get text to speech conversion software?
  129.  
  130. Free (but not public domain) text to speech conversion software is
  131. available via anonymous ftp from wilma.cs.brown.edu in the pub directory
  132. as speak.tar.Z.  It will compile and run on a SPARC's built-in audio
  133. after modifying speak.c with the path of your libaudio.h (e.g.,
  134. /usr/demo/SOUND/libaudio.h).  It's a simple phoneme concatenation
  135. system with commensurate synthesized speech quality (a directory of
  136. phoneme audio files is included).  [Joe Campbell, jpcampb@afterlife.ncsc.mil]
  137. --------------------------------------------------
  138.  
  139. Q1.2.11: Where can I get filter design software?
  140.  
  141. One source is the following: in the August 92 issue of IEEE
  142. Transactions on Signal Processing there is a paper entitled "METEOR: A
  143. Constraint-Based FIR Filter Design Program" by Kenneth Steiglitz,
  144. Thomas W. Parks and James F. Kaiser.  They describe an FIR design
  145. program which allows specification of the target frequency response
  146. characteristics in a fairly generalised and flexible way.  As well as
  147. designing filters, the program can optimise filter lengths and push
  148. band limits.
  149.  
  150. The paper contains a footnote which says "Pascal and C versions of
  151. source code are available to  anonymous ftp at princeton.edu in the
  152. directory /pub as meteor.p, form.p, meteor.c and form.c".
  153.  
  154. True, they are.  They appear to work.  The Pascal versions have been
  155. put through p2c to get the C versions; all the needed Pascal library
  156. stuff is included in the C versions and they built error-free out of
  157. the box for me on an SGI machine.
  158.  
  159. One catch is, there is no manual - you need the paper to know how to drive
  160. the programs.
  161.  
  162. [Steve Clift, clift@ml.csiro.au]
  163.  
  164. { There are other free filter design programs floating around out there,
  165.   such as optfir/wfir.  Does anyone know of ftp sites? }
  166.  
  167. =============================================================================
  168.  
  169. 2. Algorithms and standards.
  170.  
  171. This section deals with DSP algorithms and related standards.
  172.  
  173. =======================================================================
  174. Q2.1: Where can I get some algorithms for general DSP?
  175.  
  176. The following archives contain things such as matrix  operations, FFT's and
  177. generally useful things like that, as opposed to complete applications:
  178.  
  179. (1) host ux1.cso.uiuc.edu - log in as anonymous, get the file math/README.
  180.     It summarises the contents of the archive.
  181.  
  182. (2) Netlib, which serves some of this software via email. Try mail to
  183.     netlib@ORNL.GOV with "send help" in the subject field.
  184.     For Europe:
  185.         Internet:       netlib@nac.no
  186.         EARN/BITNET:    netlib%nac.no@norunix.bitnet
  187.         X.400:          s=netlib; o=nac; c=no;
  188.         EUNET/uucp:     nac!netlib
  189.     For the Pacific, try
  190.         netlib@draci.cs.uow.edu.au
  191.      For background about netlib, see Jack J. Dongarra and Eric Grosse,
  192.      "Distribution of Mathematical Software Via Electronic Mail,"
  193.      Comm. ACM (1987) 30,403--407.
  194.  
  195.      A similar collection of statistical software is available from
  196.            statlib@temper.stat.cmu.edu.
  197.  
  198.      The symbolic algebra system REDUCE is supported by
  199.           reduce-netlib@rand.org.
  200.  
  201. (3) The Naval Surface Warfare Center has a library of mathematical
  202.     Fortran subroutines that may be of use.  From the report itself:
  203.  
  204.     NSWC Library of Mathematical Subroutines
  205.     Report No.: NSWC TR 90-21, January 1990
  206.     by Alfred H. Morris, Jr.
  207.  
  208.     Naval Surface Warfare Center (E43)
  209.     Dahlgren, VA 22448-5000
  210.     U.S.A.
  211.  
  212.     Distribution: Approved for public release; distribution unlimited.
  213.  
  214.     Abstract:
  215.  
  216.     The NSWC library is a library of general-purpose Fortran subroutines
  217.     that provide a basic computational capability in a variety of
  218.     mathematical activities. Emphasis has been placed on the transportability
  219.     of the codes. Subroutines are available in the following areas:
  220.     Elementary Operations, Geometry, Special Functions, Polynomials, Vectors,
  221.     Matrices, Large Dense Systems of Linear Equations, Banded Matrices,
  222.     Sparse Matrices, Eigenvalues and Eigenvectors, l1 Solution of Linear
  223.     Equations, Least-Squares Solution of Linear Equations, Optimization,
  224.     Transforms, Approximation of Functions, Curve Fitting, Surface Fitting,
  225.     Manifold Fitting, Numerical Integration, Integral Equations, Ordinary
  226.     Differential Equations, Partial Differential Equations
  227.  
  228.     [Witold Waldman, witold@hotblk.aed.dsto.gov.au]
  229.  
  230.     {  Does anyone know an FTP site for this library? }
  231.  
  232. If you don't know where to find what you're after, try archie.
  233.  
  234. =======================================================================
  235.  
  236. Q2.2: What are CELP and LPC?  Where can I get the source for CELP and LPC?
  237.  
  238. CELP stands for "code excited linear prediction".  LPC stands for
  239. "linear predictive coding".  They are compression algorithms used for
  240. low bit rate (2400 and 4800 bps) speech coding.
  241.  
  242. The U.S. DoD's Federal Standard 1016 (FS 1016) based 4800 bps code
  243. excited linear prediction voice coder version 3.2 (CELP 3.2) Fortran
  244. and C simulation source codes are available for worldwide distribution
  245. at no charge (on DOS diskettes, but configured to compile on Sun SPARC
  246. stations) from:
  247.  
  248.     Bob Fenichel
  249.     National Communications System
  250.     Washington, D.C.  20305
  251.     1-703-692-2124
  252.     1-703-746-4960 (fax)
  253.  
  254. Example input and processed speech files, a technical information bulletin,
  255. and the official standard "Federal Standard 1016, Telecommunications:
  256. Analog to Digital Conversion of Radio Voice by 4,800 bit/second Code
  257. Excited Linear Prediction (CELP)" are included at no charge.
  258.  
  259. Unfortunately, a document that is a vital part of the CELP release package
  260. is not available in electronic form.  Anyone serious interested in CELP
  261. should obtain the document:
  262.  
  263.     Details to Assist in Implementation of Federal Standard 1016 CELP.
  264.     National Communications System, Office of Technology & Standards, 1992.
  265.     Technical Information Bulletin 92-1.
  266.  
  267. It is available from the above address.
  268.  
  269. The 4800 bps CELP code is available via anonymous FTP on
  270. furmint.nectar.cs.cmu.edu (128.2.209.1111) in celp.audio.compression.
  271. It is unsupported, and has not been compiled or tested.  This version
  272. takes a lot of CPU time.  It is about 15 times slower than real-time.
  273. That is, to code 1 minute of speech takes about 15 minutes.  It has
  274. directions on how to reduce the codebook search to make it faster, but
  275. they are only for the speech coding expert.
  276.  
  277. The following article describes the FS 1016 4.8-kbps CELP coder:
  278.  
  279. Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, "The
  280. Proposed Federal Standard 1016 4800 bps Voice Coder:  CELP," Speech
  281. Technology Magazine, April/May 1990, p. 58-64.
  282.  
  283. The U.S. DoD's Federal-Standard-1015/NATO-STANAG-4198 based 2400 bps
  284. linear prediction coder version 53 (LPC-10e v53) Fortran or C simulation
  285. source codes are available on a limited basis upon written request to:
  286.  
  287.     Tom Tremain
  288.     Department of Defense
  289.     Ft. Meade, MD  20755-6000
  290.     USA
  291.  
  292. The U.S. Federal Standard 1015 (NATO STANAG 4198) is described in:
  293. Thomas E. Tremain, "The Government Standard Linear Predictive Coding
  294. Algorithm:  LPC-10," Speech Technology Magazine, April 1982, p. 40-49.
  295.  
  296. Copies of the official standards FS 1015 and FS 1016 are available for
  297. US $2.50 each from:
  298.  
  299.     GSA Rm 6654
  300.     7th & D St SW
  301.     Washington, D.C.  20407
  302.     1 (202) 708-9205
  303.  
  304.  
  305. Realtime DSP code for FS-1015 and FS-1016 is sold by several vendors,
  306. including:
  307.  
  308.     John DellaMorte
  309.     DSP Software Engineering
  310.     165 Middlesex Tpk, Suite 206
  311.     Bedford, MA  01730
  312.     1-617-275-3733
  313.     1-617-275-4323 (fax)
  314.     dspse.bedford@channel1.com
  315.  
  316. and
  317.  
  318.     Analogic Systems
  319.     2916 Ramona
  320.     Palo Alto, CA  94306
  321.     (415) 323-3232
  322.  
  323. DSP Software Engineering's FS-1016 code can run on a DSP Research's Tiger 30
  324. or on Intellibit's AE2000 TMS320C31 based 3" by 2.5" card.  See section 4.1
  325. for more on these cards.  Analogic's product runs on a 27 MHz DSP56001 chip.
  326.  
  327. [Most of the above from Joe Campbell, jpcampb@afterlife.ncsc.mil, with
  328. additions from DanFrankowski, drankow@cs.umn.edu, and Ed Hall,
  329. edhall@rand.org]
  330.  
  331. =======================================================================
  332. Q2.5: What is ADPCM?  Where can I get source for it?
  333.  
  334. ADPCM stands for Adaptive Delta Pulse Code Modulation.  It is a
  335. standard for speech compression and decompression.  It takes 16-bit
  336. linear PCM samples samples and converts them to 4-bit samples, so the
  337. compression rate is 4x.
  338.  
  339. There is public domain C code available via anonymous ftp at
  340. ftp.cwi.nl in /pub/adpcm.shar written by Jack Jansen (email
  341. Jack.Jansen@cwi.nl).  It is very programmer-friendly.  The ADPCM code
  342. used is the Intel/DVI ADPCM code which is being recommended by the IMA
  343. Digital Audio Technical Working Group.  It allows the following calls:
  344.  
  345. adpcm_coder(short inbuf[], char outbuf[], int nsample,
  346.         struct adpcm_state *state);
  347. adpcm_decoder(char inbuf[], short outbuf[], int nsample,
  348.         struct adpcm_state *state);
  349.  
  350. The routines have been tested on an SGI Indigo running Irix 4.0.2 and
  351. on a Sparcstation 1+ running SunOS 4.1.1.  On a Sun, the code will
  352. compress at 250Ksample/sec and decompress at 300Ksample/sec.  On an
  353. SGI, the compressor runs at 350Ksample/sec and the decompressor at
  354. 700Ksample/sec.
  355.  
  356. Note that this is NOT a CCITT G722 coder.   The CCITT ADPCM standard is
  357. much more complicated, probably resulting in better quality sound but
  358. also in much more computational overhead.
  359.  
  360. [From Dan Frankowski, drankow@cs.umn.edu; Jack Jansen, Jack.Jansen@cwi.nl]
  361.  
  362. =======================================================================
  363.  
  364. Q2.4: How does pitch perception work, and how do I implement it on my DSP chip?
  365.  
  366. Pitch is officially defined as "That attribute of auditory sensation
  367. in terms of which sounds may be ordered on a musical scale."  Several
  368. good examples illustrating the subtleties of pitch perception are
  369. included in the "Auditory Demonstrations CD" which is available from
  370. the Acoustical Society of America, Woodbury, NY 10797 for $20.
  371.  
  372. A good general reference about the psychology of pitch perception is
  373. the book:
  374.  
  375.     B.C.J. Moore, "An Introduction to the Psychology of Hearing",
  376.     Academic Press, London, 1989.
  377.  
  378. This book is available in paperback and makes a good desk reference.
  379.  
  380. An algorithm implementation that matches a large body of psychoacoustical
  381. work, but which is computationally very intensive, is presented in the paper:
  382.  
  383.     Malcolm Slaney and Richard Lyon, "A Perceptual Pitch Detector,"
  384.     Proceedings of the International Conference of Acoustics, Speech,
  385.     and Signal Processing, 1990, Albuquerque, New Mexico.
  386.  
  387. The definitive papers describing the use of such a perceptual pitch
  388. detector as applied to the classical pitch literature is in:
  389.  
  390.     Ray Meddis and M. J. Hewitt. "Virtual pitch and phase
  391.         sensitivity of a computer model of the auditory periphery. "
  392.         Journal of the Acoustical Society of America 89 (6 1991): 2866-2682.
  393.         and 2883-2894.
  394.  
  395. The current work that argues for a pure spectral method starts with the work
  396. of Goldstein:
  397.  
  398.     J. Goldstein,  "An optimum processor theory for the
  399.     central formation of the pitch of complex tones," Journal
  400.     of the Acoustical Society of America 54, 1496-1516, 1973.
  401.  
  402. Two approaches are worth considering if something approximating pitch
  403. is appropriate.  The people at IRCAM have proposed a harmonic analysis
  404. approach that can be implemented on a DSP
  405.  
  406.     Boris Doval and Xavier Rodet, "Estimation of Fundamental Frequency
  407.     of Musical Sound Signals," Proceedings of the 1991 International
  408.     Conference on Acoustics, Speech, and Signal Processing, Toronto,
  409.     Volume 5, pp. 3657-3660.
  410.  
  411. The classic paper for time domain (peak picking) pitch algorithms is:
  412.  
  413.     B. Gold and L. Rabiner, "Parallel processing techniques for estimating
  414.     pitch periods of speech in the time domain," Journal of the Acoustical
  415.     Society of America, 46, pp 441-448, 1969.
  416.  
  417. Finally, a word of caution: Pitch is not single-valued.  We can hear a
  418. sound and match it to several different pitches.  Imagine the number
  419. of instruments in an orchestra, each with its own pitch.  Even a
  420. single sound can have more than one pitch.  See for example
  421. Demonstration 27 from the ASA Auditory Demonstrations CD.
  422.  
  423. [The above from Malcolm Slaney, Apple Computer, and John Lazzaro,
  424. U.C. Berkeley.]
  425.  
  426. =======================================================================
  427.  
  428. Q2.5: What standards are there for digital audio?  What is AES/EBU?
  429.       What is S/P-DIF?
  430.  
  431. The "AES/EBU" (Audio Engineering Society / European Broadcast Union)
  432. digital audio standard is probably the most popular digital audio
  433. standard today.  Most consumer and professional digital audio devices
  434. (CD players, DAT decks, etc.) that feature digital audio I/O support
  435. AES/EBU.
  436.  
  437. AES/EBU is a bit-serial communications protocol for transmitting
  438. digital audio data through a single transmission line.  It provides two
  439. channels of audio data (up to 24 bits per sample), a method for
  440. communication control and status information ("channel status bits"),
  441. and some error detection capabilities.  Clocking information (i.e.,
  442. sample rate) is derived from the AES/EBU bit stream, and is thus
  443. controlled by the transmitter.  The standard mandates use of 32 kHz,
  444. 44.1 kHz, or 48 kHz sample rates, but some interfaces can be made to
  445. work at other sample rates.
  446.  
  447. AES/EBU provides both "professional" and "consumer" modes.  The big
  448. difference is in the format of the channel status bits mentioned above.
  449. The professional mode bits include alphanumeric channel origin and
  450. destination data, time of day codes, sample number codes, word length,
  451. and other goodies.  The consumer mode bits have much less information,
  452. but do include information on copy protection (naturally).  Additionally,
  453. the standard provides for "user data", which is a bit stream containing
  454. user-defined (i.e., manufacturer-defined) data.  According to Tim
  455. Channon, "CD user data is almost raq CD subcode; DAT is StartID and
  456. SkipID.  In progfessional mode, there is an SDLC protocol or, if DAT,
  457. it may be the same as consumer mode."
  458.  
  459. There physical connection media are commonly used with AES/EBU:
  460. balanced (differential), using two wires and shield in three-wire microphone
  461. cable with XLR connectors; unbalanced (single-ended), using audio coax cable
  462. with RCA jacks; and optical (via fiber optics).
  463.  
  464. "S/P-DIF" (Sony/Philips Digital Interface Format) typically refers to
  465. AES/EBU operated in consumer mode over unbalanced RCA cable.  Note
  466. that S/P-DIF and AES/EBU mean different things depending on how much
  467. of a purist you are in the digital audio world; see the Finger article
  468. below.
  469.  
  470. References:
  471.  
  472. Finger, Robert, "AES3-199X: The Revised Two Channel Digital Audio
  473. Interface (DRAFT)", presented at the 91st Convention of the Audio
  474. Engineering Society, October 4-8, 1991.  Reprints: AES, 60 East 42nd
  475. St., New York, NY, 10165.
  476.  
  477. [The above from Phil Lapsley, phil@ohm.Berkeley.EDU, and Tim Channon,
  478. tchannon@black.demon.co.uk]
  479.  
  480. =============================================================================
  481.  
  482. Q2.6: What is mu-law encoding?  Where can I get source for it?
  483.  
  484. Mu-law (also "u-law") encoding is a form of logarithmic quantization
  485. or companding.  It's based on the observation that many signals are
  486. statistically more likely to be near a low signal level than a high
  487. signal level.  Therefore, it makes more sense to have more quantization
  488. points near a low level than a high level.  In a typical mu-law system,
  489. linear samples of 14 to 16 bits are companded to 8 bits.  Most telephone
  490. quality codecs (including the Sparcstation's audio codec) use mu-law
  491. encoded samples.
  492.  
  493. Desktop Sparc machines come with routines to convert between linear and
  494. mu-law samples.  On a desktop Sparc, see the man page for audio_ulaw2linear
  495. in /usr/demo/SOUND/man.
  496.  
  497. Craig Reese posted the source of similar routines to comp.dsp in August '92.
  498.  
  499. References:
  500.  
  501. CCITT Recommendation G.711 (very difficult to follow).
  502.  
  503. Michael Villeret, et. al, "A New Digital Technique for Implementation
  504. of Any Continuous PCM Companding Law,", IEEE Int. Conf. on Communications,
  505. 1973, vol. 1, pp. 11.12-11.17.
  506.  
  507. MIL-STD-188-113, "Interoperability and Performance Standards
  508. for Analog-to-Digital Conversion Techniques," 17 February 1987.
  509.  
  510. "TI Digital Signal Processing Applications with the TMS320 Family",
  511. pp. 169-198.
  512.  
  513. [From Joe Campbell; Craig Reese, cfreese@super.org; Sepehr Mehrabanzad,
  514. sepehr@falstaff.dev.cdx.mot.com]
  515.  
  516. =============================================================================
  517.  
  518. Q2.7: How can I do CD <-> DAT sample rate conversion?
  519.  
  520. CD players use a 44.1 kHz sample rate, whereas DAT uses a 48 kHz sample rate.
  521. This means that you must do sample rate conversion before you can get data
  522. from a CD player directly into a DAT deck.
  523.  
  524. [From Ed Hall, edhall@rand.org:]
  525.  
  526. For a start, look at "Multirate Digital Signal Processing" by Crochiere
  527. and Rabiner (see FAQ section 1.1).
  528.  
  529. Almost any technique for producing good digital low-pass filters will be
  530. adaptable to sample-rate conversion. 44.1:48 and vice-versa is pretty
  531. hairy, though, because the lowest whole-number ratio is 147:160.  To do
  532. all that in one go would require a FIR with thousands of coefficients,
  533. of which only 1/147th or 1/160th are used for each sample--the real
  534. problem is memory, not CPU for most DSP chips.  You could chain several
  535. interpolators and decimators, as suggested by factoring the ratio into
  536. 3*7*7:2*2*2*2*2*5.  This adds complexity, but reduces the number of
  537. coefficients required by a considerable amount.
  538.  
  539. In any case, your local DSP guru will probably be able to suggest a good
  540. program for designing digital filters (this is a good general question
  541. for the net, anyway).  This is one case where going beyond the simpler
  542. windowed-sinc-based approaches might pay off (and I'm afraid I can't
  543. recommend any readily available programs myself).
  544.  
  545. =============================================================================
  546.  
  547. 3. Programmable DSP chips and software.
  548.  
  549. This section deals with programmable DSP chips and their software.
  550.  
  551. Q3.1: What are the available DSP chips and chip architectures?
  552.  
  553. { This is based on a woefully inadequate databook collection.  Anyone want
  554.   to add to this list?  Manufacturers want to submit anything? }
  555.  
  556. The "big four" programmable DSP chip manufacturers are Texas Instruments,
  557. with the TMS320 series of chips; Motorola, with the DSP56000 and DSP96000
  558. series; AT&T, with the DSP16 and DSP32 series; and Analog Devices, with
  559. the ADSP2100 series.  A good overview of prorammable DSP chips is published
  560. periodically in EDN magazine.  The most recent version is from Sep. 17, 1992,
  561. pp. 90-141.
  562.  
  563. Here's a less ambitious chip breakdown by manufacturer:
  564.  
  565. -------------------------------------
  566.  
  567. Texas Instuments:
  568.  
  569. TMS320C1x: family of low cost fixed-point DSP's; 16 bit data, 32 bit
  570. registers; Various RAM and ROM configurations; 16 bit I/O bus, serial ports.
  571.  
  572. TMS320C25: 50MHz fixed-point DSP; 16 bit data, 32 bit registers;
  573. 12.5 MIPS @ 50MHz.
  574.  
  575. TMS320C30: 27/33/40 MHz floating point DSP; 32 bit floating point,
  576. 24 bit fixed point data, 40 bit  registers; DMA  controller; dual serial
  577. ports; some support for multi-processor arrays.
  578.  
  579. TMS320C31: version of C30 minus peripheral bus, one serial port, and the 4Kx32
  580. internal ROM.  ~$20, 132 pin PQFP.
  581.  
  582. TMS320C40: 40/50 MHz floating point DSP; extensive parallel processing
  583. support through 6 buffered byte-wide 20 Mb/s links and 6 channel DMA; cache.
  584.  
  585. TMS320C50: enhanced TMS320C25 (double throughput); low overhead looping;
  586. 10 Kwords SRAM on chip.
  587.  
  588. -------------------------------------
  589.  
  590. Motorola:
  591.  
  592. DSP56001: 20.5, 27, or 32 MHz fixed point DSP.  24 bit data bus, 16 bit
  593. address bus, 56 bit accumulators (2), host interface port, serial ports (2),
  594. general purpose I/O pins, timer.  Harvard architecture.  512 words program
  595. RAM, 512 words data RAM on chip.
  596.  
  597. DSP56000: Mask-programmed version of DSP56001.
  598.  
  599. DSP56002: DSP56001 with On-Chip Emulation (OnCE) debug port and clock PLL.
  600. Also has a four cycle double precision multiply and support for block
  601. floating point.  Available up to 40 MHz.
  602.  
  603. DSP56156: 40, 50, or 60 MHz fixed point DSP; 16 bit data bus, 40 bit
  604. accumulators (2), host interface port, serial ports (2), timer, OnCE
  605. debug port, clock PLL, 14 bit sigma-delta voice band CODEC, 2K words
  606. program RAM, 2K words data RAM on chip.
  607.  
  608. DSP96002: IEEE format floating point DSP; 32 bit data and address bus, two
  609. complete external buses; Harvard architecture.
  610.  
  611. -------------------------------------
  612.  
  613. AT&T:
  614.  
  615. DSP32C: floating point DSP; 32 bit floating point, 16/24 bit fixed point data.
  616.  
  617. DSP3210: floating point DSP; 32 bit floating point, 16/32 bit fixed point data;
  618. 32 bit address and data bus, serial port.
  619.  
  620. [and others; we don't have a good list, unfortunately].
  621.  
  622. -------------------------------------
  623.  
  624. Analog Devices:
  625.  
  626. ADSP2100: 32 and 50Mhz fixed point DSP (8 MIPS, 12.5MIPS).  16 bit registers
  627. except for multiplyer-accumulate register which is 40 bits.  No on chip memory
  628. except for a 16 word instruction cache.
  629.  
  630. ADSP2101: Derived from ADSP2100, 16 bit registers except for the multiplier
  631. accumulator which is 40 bits. 2Kx24 instruction/data ram in program memory
  632. space, 1Kx16 data ram in data memory space.  Adds memory, timer, serial ports,
  633. etc. to the 2100.  Fastest speed grade in production is 16.6 MHz (16.6MIPS).
  634.  
  635. ADSP2102: Ram/rom version of 2101; user selects how much of the 2kx24 program
  636. memory is mask rom.
  637.  
  638. ADSP2103: 3V version of the 2101.
  639.  
  640. ADSP2105: 10Mhz fixed point DSP with 1 serial port, timer and 1kx24
  641. instruction/data ram in program memory space, and 512 word data ram
  642. in data memory space. This processor sells for US $9.90 in any quantity.
  643.  
  644. ADSP2111: adds a 8/16bit host interface port [to 2101?].
  645.  
  646. ADSP21msp50: ADSP2111 with an on chip a/d and d/a interface and additional
  647. low power modes.
  648.  
  649. ADSP2161: has 8Kx24 mask rom.
  650.  
  651. DSP21020: 20/25/33 MHz floating-point DSP;  Supports 32-bit fixed point, IEEE
  652. format 32-bit floating point, and 40-bit floating point;  40-bit registers plus two 80-bit fixed-point multiply-accumulators;  Harvard arch. with 32 word
  653. instruction cache allows two data accesses in a single cycle;  IEEE 1149.1 JTAG boundry scan; 33.3 MIPS @ 33.3 MHz.
  654.  
  655. ADSP21010: Slower and cheaper version of '020 (16 MHz).  Limited to 32-bit
  656. fixed and floating point.
  657.  
  658. All of the processors (except the 2100) use a 1X instruction clock and use an
  659. on chip PLL to generate an internal 4X clock.  All processors have an extended
  660. Harvard architecture which allows two data fetches and an instruction fetch
  661. every cycle in parallel with an alu or mac operation.  All instructions
  662. including accessing external memory can complete in 1 cycle.
  663.  
  664. [Greg Koker, greg.koker@analog.com]
  665.  
  666. =======================================================================
  667.